This invention pertains generally to AC-3 audio decompression, and more particularly to reducing operations and power saving for DSP processors.
Digital Audio Compression Standard (AC-3) is an audio standard adopted by the United States Advanced Television Systems Committee (ATSC) for High Density Television (HDTV) and Digital Video Data (DVD). By using AC-3 algorithms to compress a digital audio signal, the bandwidth requirement to transmit the audio signal will be greatly reduced. Both HDTV and DVD are for the consumer market.
The core method in audio decompression utilizing the AC-3 standard is a modified inverse discrete cosine transform (IMDCT) routine which requires most if not all of the computational power of a digital signal processor (DSP) or microprocessor. Because of the large numbers of computations, an IMDCT routine is also very time consuming.
When compressing audio signals utilizing the AC-3 format, the signals are defined in data blocks prior to compression. Data blocks in the AC-3 standard are defined as having one of two different lengths, one is 512 and another is 256. The encoder of the audio compression system determines the length to use and transmits this information to the decoder. The procedure for the IMDCT is the same for both lengths.
The AC-3 standard orthogonal method for decompressing an N block length compressed digital audio signal consisting of N/2 spectral coefficients has three steps:
Step 1: Converting the N/2 spectral coefficients into a block of N/4 frequency domain complex numbers in accordance with the following equation:
Z(k)=xe2x88x92(X(N/2xe2x88x922kxe2x88x921)+jX(2k))ej2xcfx80(8k+1)/(8N)xe2x80x83xe2x80x83(1)
xe2x80x83for k=0,1, . . . ,N/4xe2x88x921,
where:
X: IMDCT frequency domain input signal;
N: block length;
Z(k): frequency domain complex numbers.
Step 2: Computing an N/4 Inverse Fast Fourier Transform (IFFT) on the frequency domain complex numbers to produce a block of N/4 time domain complex numbers:
                              z          ⁡                      (            n            )                          =                              ∑                          k              =              0                                                      N                /                4                            -              1                                ⁢                      xe2x80x83                    ⁢                                    Z              ⁡                              (                k                )                                      ⁢                          ⅇ                              j                ⁢                                  xe2x80x83                                ⁢                2                ⁢                π                ⁢                                  xe2x80x83                                ⁢                                  kn                  /                                      (                                          N                      /                      4                                        )                                                                                                          (        2        )            xe2x80x83for n=0,1, . . . ,N/4xe2x88x921,
where:
z(n): processed-samples in the time domain.
Step 3: Performing the complex multiplication to compute the block of N/4 processed samples in the time domain from the N/4 time domain complex numbers:
y(n)=z(n)ej2xcfx80(8n+1)/(8N)xe2x80x83xe2x80x83(3)
for n=0,1, . . . ,N/4xe2x88x921,
where:
y(n): IMDCT output signal of processed samples in the time domain.
Two further steps are performed to obtain the final output Pulse Code Modulation (PCM) data. The first is windowing and de-interleaving and the second is overlap and adding.
Referring to Table 1, the original computational theory to compute the y(n) IMDCT output or processed samples in the time domain, prior to the implementation of the IFFT, required a large number of computations. The number of operations are too high to be implemented on a real time digital signal processor (DSP) chip. The most obvious and easy way to reduce the computation was to utilize IFFT in step 2. This significantly reduced the number of operations to obtain the processed samples in the time domain, see Table 1.
In order to support the dynamic range of audio signals according to the AC-3 standard, the IMDCT operation requires at least 24 bit operations. Since most DSP chips are 16 bits fixed point, a double precision operation is needed to complete the 24 bit IMDCT computation. However, the double-precision addition and multiplication requires an increase in the number of computational instructions. For example, an IMDCT will require 12 instructions to perform one double precision multiplication on Analog Device AD2100 DSP chip while a single precision multiplication requires a single instruction. A double precision IMDCT computation will require in excess of 12 instructions on the Hitachi SH DSP RISC controller plus DSP engine, while single precision will require a single instruction.
There is a need to provide an apparatus and method for performing an IMDCT which utilizes less computational power. There is also a need for an apparatus and method which can reduce the computational time needed to perform an IMDCT. A more computationally and time efficient apparatus and method is needed to improve the effectiveness and implementation of decompressing digital audio signals. Further, a more efficient apparatus and method is needed to improve the effectiveness of decompressing digital audio signals compressed following the AC-3 standard.
The present invention provides a novel method and apparatus for performing an inverse modified discrete cosine transform (IMDCT) on at least one block of spectral coefficients representing an information signal in the frequency domain. The IMDCT provides an IMDCT output including at least one block of processed sampled in the time domain. The new and novel method of the present invention includes converting spectral coefficients in the block of spectral coefficients to provide a block of frequency domain processed complex samples and processing the block of frequency domain processed complex samples into the block of processed samples in the time domain. The converting spectral coefficients into the frequency domain processed complex samples includes regrouping the spectral coefficients in the block of spectral coefficients into an even data sequence and an odd data sequence of spectral coefficients, and continuing to regroup the even data sequence and odd data sequence of spectral coefficients until each data sequence includes only two spectral coefficients. The method and apparatus of the present invention also includes performing butterfly computations. The performing of the butterfly computations includes performing at least one complex multiplication and at least one complex addition, and limiting the number of complex multiplications of the butterfly computations by a factor of two by calculating a first set of exponential components, xcex2N/2,n,1, for n=0, 1, . . . , N/8, and setting a second set of exponential components, xcex2N/2,n+N/8,1, equal to xcex2N/2,n,1, for n=0, 1, . . . , N/8.
The new method and apparatus reduce the number of operations needed for the inverse modified discrete cosine transform (IMDCT). This reduction directly reduces power consumption of hardware. The main contribution combines all the stages in IMDCT and reformulates it into a new efficient method.